#ifndef HMAC_H
#define HMAC_H

#include <string>
#include <cstring>
#include <cstdio>
#include <cryptopp/sha.h>
#include <cryptopp/filters.h>
#include <cryptopp/hex.h>

#define TAMANIO_BLOQUE_PAD 64
#define DIGEST_SIZE CryptoPP::SHA1::DIGESTSIZE
#define  CONST_O_PAD 92
#define  CONST_I_PAD 54

class HMAC {
	public:
		HMAC();
		virtual ~HMAC();

		std::string generarFirma(const std::string& mensaje,
								 const std::string& key);
		int getTamanioFirma();
	protected:
	private:
		CryptoPP::SHA1 sha1;

		int getTamanioDigest();
};

#endif
